package com.niuwa.p2p.dao.redenvelope;

import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

import com.niuwa.p2p.dao.MyBatisDao;
import com.niuwa.p2p.entity.redenvelope.RedEnvelope;
import com.niuwa.p2p.vo.front.account.RedEnvelopeVo;
import com.niuwa.p2p.vo.front.product.FrontRedEnvelopeVo;

@MyBatisDao
public interface RedEnvelopeDao {
    int deleteByPrimaryKey(String exchangeNo);

    int insert(RedEnvelope record);

    int insertSelective(RedEnvelope record);

    RedEnvelope selectByPrimaryKey(String exchangeNo);

    int updateByPrimaryKeySelective(RedEnvelope record);

    int updateByPrimaryKey(RedEnvelope record);
    
    
    /**
     * 
     *根据查询条件查询红包列表条数
     * @param paramMap
     * @return Integer 
     *
     */
    public Integer searchRedEnvelopeListCountByCondition(Map<String,Object> paramMap);
    
    
    
    /**
     * 
     *根据查询条件查询红包列表
     * @param paramMap
     * @return  List<RedEnvelopeVo>
     *
     */
    public   List<RedEnvelope> searchRedEnvelopeListByCondition(Map<String,Object> paramMap);
    
    
	/**
     * 一键审核或一键拒绝
     * @param paramMap
     * @return
     */
    
    public void updateRedEnvelope(RedEnvelope redEnvelope);
    
    
    /**
     * 
     *获得最大的兑换码
     * @return Sring
     *
     */
    public String getMaxExchangeNo();
    
    
    public  List<String> searchAllCustName();
    
    /**
     * 红包批量插入
     * @param List<JSONObject>
     * @return
     */                
    public void  insertRedEnvelopeBatch(Map<String,Object> paramMap);
    
    /**
     * 红包管理[web]
     * @param paramMap
     * @return
     */
    List<RedEnvelopeVo> selectRedEnvelopeBySelectiveListPage(Map<String,Object> paramMap);
    
    
   
    
    /**
     * 获取红包个数[web]
     * @param paramMap
     * @return
     */
    Map<String, Object> selectRedEnvelopeCountBySelective(Map<String,Object> paramMap);
    
    /**
     * 获取用户可用红包数量
     * @param paramMap
     * @return
     */
    Integer selectSumRedEnvelopeByCustId(Map<String,Object> paramMap);
    
    /**
     * @Description: 获取用户所有可用的红包
     * add by bwz at 2015年4月10日
     * @param paramMap
     * @return
     */
    List<FrontRedEnvelopeVo> selectAllRedEnve4Customer(Map<String,Object> paramMap);
    /**
     * 用户通过自动创建规则生成的红包
     * @param map
     * @return
     */
    List<RedEnvelope> alreadyGenByRule(Map<String,Object> map);
    
    /**
     * @Description: 根据多个条件查询符合条件的单个红包
     * add by bwz at 2015年4月16日
     * @param map
     * @return
     */
    public RedEnvelope selectRedEnvelopeByCriteria(Map<String,Object> map);
    
    /**
     * @Description: 获取用户所有可用的红包
     * @autor liyijie
     * @date 2015-04-20
     * @param paramMap
     * @return
     */
    List<Map<String, Object>> selectAllRedEnve4App(Map<String,Object> paramMap);
}